package com.hadluo.qq.server.service;

import com.hadluo.qq.server.entity.Message;
import com.hadluo.qq.server.mapper.MessageMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 消息服务
 * @author hadluo
 */
public interface MessageService {
    /**
     * 保存消息
     * @param message 消息对象
     */
    void saveMessage(Message message);

    /**
     * 获取历史消息
     * @param userId1 用户1 ID
     * @param userId2 用户2 ID
     * @param page 页码
     * @param size 每页大小
     * @return 消息列表
     */
    List<Message> getHistoryMessages(Long userId1, Long userId2, Integer page, Integer size);

    /**
     * 标记消息为已读
     * @param messageId 消息ID
     */
    void markMessageAsRead(Long messageId);

    /**
     * 获取未读消息数量
     * @param userId 用户ID
     * @return 未读消息数量
     */
    int getUnreadMessageCount(Long userId);

    /**
     * 获取未读消息列表
     * @param userId 用户ID
     * @return 未读消息列表
     */
    List<Message> getUnreadMessages(Long userId);

    /**
     * 获取指定用户之间的最近聊天记录
     * @param userId1 用户1 ID
     * @param userId2 用户2 ID
     * @param limit 获取记录数量限制
     * @return 聊天记录列表
     */
    List<Message> getChatHistory(Long userId1, Long userId2, int limit);
}